

public class Multime implements Structura {
	protected int multime[];
	private int n;	//dimensiunea 
	private int dim;
	
	//constructor implicit
	public Multime(){
		n=0;
		dim=10;
		multime=new int[dim];
	}
	
	//constructor explicit
	public Multime(int dimensiune){
		n=0;
		dim=dimensiune;
		multime=new int[dim];
	}
	
	//returneaza multimea
	private int[] getMultime()
	{
		return this.multime;
	}
	
	//setarea elementelor vectorului
	private void setMultime(int m[])
	{
	int n2=m.length;
    for(int i=0; i<n2 ;i++)
	   {
	   	this.multime[i]=m[i];
	   }
	    
	}
	
	//adaugarea unui element in multime
	public void adauga(int elem){
		if(n >= dim)
			System.out.println("Multimea este plina, nu se poate adauga elemente ");
		else{
			multime[n]=elem;
			n++;
		}
				
	}
	
	
	//suprimarea elementului
	public void sterge(int elem){
		int i=0;
		for (i=0; i<n; i++)
			if (multime[i] == elem){
				multime[i] = multime[n-1];
				n--;
				i--;
			}
	}
		
	
	//verificarea daca elementul apartine multimii
	public boolean apartine(int elem){
		boolean gasit = false;
		for(int i=0; i<n && !gasit; i++){
			if (multime[i] == elem)
				gasit = true;
		}
		return gasit;
	}
	
	
	public void reuniune (Multime m2){
		for (int i=0; i<n; i++){
			if (!apartine(m2.multime[i])){
				multime[n]=m2.multime[i];
				n++;
			}
		}
		
	}

	//afisarea multimii
	public void afiseaza(){
		if( n>0 ){
			System.out.print("Multimea:{");
			for(int i=0; i<n-1; i++)
				System.out.print(this.multime[i]+",");
			System.out.println(this.multime[n-1]+"}");
		}
		else
			System.out.println("Multimea este vida");
	}
}
